A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, such as an Ethernet network, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Intermediate devices (referred to as network devices or nodes) are interconnected so as to provide an infrastructure for forwarding the packets between computing devices. For example, computer networks may include routers, switches, gateways, firewalls and a variety of other devices.
In many networks, it is important for nodes within the network to have accurate current time information. For example, accurate time information (i.e., time of day) may be necessary for computing timing delays for communicating packets between network nodes. Accurate timing information regarding the transit time of packets may be important to assess network efficiency and to ensure quality of service and performance measures. As an example, mobile handset devices may require microsecond accuracy when communicating simultaneously with multiple base-stations in a 4G mobile network. To correctly assess the timing information, it is important for the current time on all the interconnected computing devices of the network to be accurately synchronized to a primary reference time. The primary reference time may be provided by a primary reference clock source device, such as a GPS.
Typically, one or more server or “master” devices are configured to determine the primary reference time and deliver that time to other client or “slave” devices. Common examples of such client devices include routers within a service provider network. The slave and master devices will typically send and receive time synchronization messages in a synchronization handshake to confirm accurate time synchronization. Some networks use specific synchronization protocols that specify and require a maximum one second round trip delay between delivery of the primary reference time by the server node and response by the slave device in a time synchronization handshake. For example, the IEEE 1588v2 protocol, referred to as Precision Time Protocol (PTP), is used for timing recovery of frequency, phase, and time-of-day over a packet based network. The protocol relies on having a bidirectional symmetric path for packets that flow between a master device and a slave device. In the PTP protocol the client device first determines the network delay between the master and slave devices. After assuming the path between the master and slave devices is symmetric, the slave device then computes the time offset from the master device. A network change that results in a longer/shorter symmetric path or a network change that results in the creation of an asymmetric path between the master and slave device can be problematic for the slave device's ongoing computations and adjustments in attempt to recover time.